By way of background concerning conventional systems, when transforming source image data to target image data, where the number of pixels in the source image data and the target image data differ, a re-sizing or re-sampling operation is performed since the source pixels do not map exactly to target pixels on a one-to-one basis. For instance, when rendering video data on a computer from source video data to a software media player, the target pixel space as viewed on screen of the computer typically differs from the source pixel space, and thus the images represented in the source video data are re-sampled to fit the target pixel space for proper viewing. In some cases, a user can change the on-screen pixel space on the fly in which case the ability to dynamically re-size image data for display quickly is desirable.
Today, this re-sizing or re-sampling operation is performed by determining a destination pixel value, for each given pixel location in the target, by interpolating with respect to some region of pixels defined in the source image that correspond to the destination pixel's location. Designers are presented with a variety of different fixed filtering algorithms for performing such interpolation, each having varying complexity, cost and performance tradeoffs. In this regard, today, designers of rendering systems select one of the fixed algorithms according to differing performance tradeoff characteristics for performing this re-sizing or re-sampling operation, typically designing for a worst case, or optimizing speed versus complexity for a given application. However, such choice can result in an overly complex implementation for simple image data, performing a lot of unnecessary work and, on the flip side, such choice can result in an overly simple implementation that produces too many unacceptable artifacts when transforming complex image data.
Accordingly, it would be desirable to provide an improved algorithm for transforming video or image data that does not blindly apply a pre-selected transform algorithm for all image data, thereby limiting performance to that of the pre-selected algorithm. The above-described deficiencies of using conventional video or image transform algorithms are merely intended to provide an overview of some of the problems of conventional systems, and are not intended to be exhaustive. Other problems with the state of the graphics art and corresponding benefits of the various non-limiting embodiments may become further apparent upon review of the following description.